有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

在web服务器(Heroku)上承载可运行jar文件(Discord bot)的java

我刚刚在一个可运行的jar中创建了一个简单的Discord机器人。(作为免责声明,当涉及到网络时,我是一个noob。)我正在寻找一种在线免费运行的方式,我读到了所有这些VPS网站,但没有一个提供无限的免费计划。因此,我偶然发现了一个名为Heroku的网站,它允许我在这个月的大部分时间里运行它。我基本上已经解决了所有问题,但有一个错误我无法修复:

Error R10 (Boot timeout) -> Web process failed to bind to $PORT within 90 seconds of launch

我的Discord机器人没有连接到Heroku的服务器,我想这就是问题所在,但我不知道如何修复它。有没有人遇到过类似的问题?我是否打算以正确的方式托管我的bot?谢谢

编辑:以下是完整的日志:

2016-06-11T17:00:56.792783+00:00 app[web.1]: 17:00:56.792 [main] DEBUG d.btobastian.javacord.ImplDiscordAPI - Requested gateway wss://gateway.discord.gg (token: **************************************************NdxxxW0oQ)
2016-06-11T17:00:56.765456+00:00 app[web.1]: 17:00:56.765 [main] DEBUG d.btobastian.javacord.ImplDiscordAPI - Requesting gateway (token: **************************************************NdxxxW0oQ)
2016-06-11T17:00:57.199263+00:00 app[web.1]: 17:00:57.199 [ReadingThread] DEBUG d.b.j.utils.DiscordWebsocketAdapter - Sending connect packet
2016-06-11T17:00:57.267527+00:00 app[web.1]: 17:00:57.267 [ReadingThread] DEBUG d.b.j.utils.DiscordWebsocketAdapter - Received READY-packet!
2016-06-11T17:00:57.270636+00:00 app[web.1]: 17:00:57.270 [ReadingThread] DEBUG d.b.j.utils.DiscordWebsocketAdapter - Updating status (game: none, idle: false)
2016-06-11T17:01:38.508359+00:00 app[web.1]: 17:01:38.507 [pool-2-thread-1] DEBUG d.b.j.utils.DiscordWebsocketAdapter - Sending heartbeat (interval: 41250)
2016-06-11T17:02:19.751552+00:00 app[web.1]: 17:02:19.751 [pool-2-thread-1] DEBUG d.b.j.utils.DiscordWebsocketAdapter - Sending heartbeat (interval: 41250)
2016-06-11T17:02:22.866430+00:00 heroku[web.1]: Error R10 (Boot timeout) -> Web process failed to bind to $PORT within 90 seconds of launch
2016-06-11T17:02:23.649874+00:00 heroku[web.1]: Process exited with status 137

因此,我的应用程序实际上并没有与Heroku服务器交互,它明显地“超时”。当我在本地运行它时,一切正常,但当我将它上传到Heroku应用程序时,它“超时”我一直在寻找绑定$PORT的方法,但到目前为止没有成功。我已将其包含在Procfile中,但没有结果:

web: java $JAVA_OPTS -Dserver.port=$PORT -jar ideaprojects.jar --host=0.0.0.0 --port=$PORT

我以前从未与ports互动过,有人能帮我吗?再次感谢

Edit2:我甚至试图通过在他们的“java入门”中添加java代码来运行我的机器人。Heroku没有崩溃,但我的机器人似乎也没有运行


共 (2) 个答案

  1. # 2 楼答案

    Heroku用于托管web应用程序。它不适用于托管不属于您正在Heroku上运行的web应用程序的进程,尝试运行这样的进程不会很好

    你需要一个VPS来托管你的机器人。是的,你必须为此付出代价